home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Ahoy 1985 April
/
Ahoy_Magazine_85-04_1985_Double_L.d64
/
c64 booter
(
.txt
)
< prev
next >
Wrap
Commodore BASIC
|
2022-10-26
|
3KB
|
95 lines
0 rem 'c64 booter' copyright 1984 george jones * for c-64
1 clr:dv=peek(186)
2 bs%=692:fi%=512:cs%=93:sr%=735:rn%=733:lm%=702:po%=723:im%=770:mx=65535
3 s%=679:e%=771:poke808,234:rem disable run/stop restore
4 gosub62:rem title
5 gosub18:rem input disk,id & prog name string
6 gosub47:rem format disk
7 print"[147]":print"[144][212]he [194][207][207][212] will load and run the program"
8 print"";pn$;:print"[146][144] after you have saved it"
9 print"onto this disk."
10 printtab(6)" [212]o [210][213][206], type [204][207][193][196]";:printchr$(34)":*"chr$(34);:print",8,1"
11 close2:close15
12 print"[193]nother [194][207][207][212] ? (y/n)"
13 geta$:ifa$=""then13
14 ifa$<>"y"anda$<>"n"then13
15 ifa$="y"thenrun
16 print"[147]":sys58451:poke808,237:rem restore basic vectors & enable run/stop restore
17 print"[193]ll [196]one!";:goto17
18 print"[147]":dn$="":id$="":pn$="":pokern%,174:pokern%+1,167:pokeim%,180:pokeim%+1,2
19 rem poke address of boot, normalize basic warm start vector
20 printtab(3)"[208][204][197][193][211][197][160][201][206][211][197][210][212][160][196][201][211][203][160][212][207][160][194][197][160][198][207][210][205][193][212][212][197][196][146]":print
21 forc=s%toe%:readz%:pokec,z%:next
22 printtab(1)"** [193][204][204][160][196][193][212][193][160][207][206][160][196][201][211][203][160][215][201][204][204][160][194][197][160][197][210][193][211][197][196]![146] **"
23 print"";:input"[206][197][215][160][196][201][211][203][160][206][193][205][197]:[146] ";dn$
24 iflen(dn$)=0then23
25 print"";:input"[206][197][215][160][196][201][211][203][160][201][196]:[146] ";id$
26 iflen(id$)=0then25
27 print"[206]ame the program you want to [194]oot"
28 inputpn$
29 iflen(pn$)=0then28
30 gosub67:rem get string from input buffer and poke to filenam
31 print"[201]s ";pn$;"[146] a [194][193][211][201][195] program? (y/n)"
32 geta$:ifa$=""then32
33 ifa$<>"y"anda$<>"n"then32
34 ifa$="y"thenreturn:rem now get entry point of ml program
35 input"[215]hat is the [211][217][211] address:[146]";ad
36 ifad=<1orad>=mxthenprint"[207][213][212] [207][198] [210][193][206][199][197]![146]":forc=1to1000:next:print"";:goto35
37 pokern%,(ad-int(ad/256)*256):rem poke lo byte
38 pokern%+1,(ad/256):rem poke hi byte
39 printtab(4)"[193]re your entries correct? (y/n)"
40 geta$:ifa$=""then40
41 ifa$<>"y"anda$<>"n"then40
42 ifa$="n"thenrun
43 return
44 close15:open15,dv,15:rem error check
45 input#15,er,er$,t,s
46 return
47 gosub44:rem error check
48 iferthenprinttab(8)er;er$;t;s:print"[208][204][197][193][211][197] [208][207][215][197][210] [196][207][215][206][160]& [211][212][193][210][212] [207][214][197][210]!";:goto48
49 close15:open15,dv,15
50 print#15,"n0:"+dn$+","+id$:rem title new disk
51 close15
52 gosub44
53 iferthen48
54 close2:open2,dv,1,"0:[160]the magic boot,p,w":rem shifted space before title
55 print#2,chr$(s%-int(s%/256)*256);
56 print#2,chr$(s%/256);
57 fori=0tocs%-1
58 print#2,chr$(peek(s%+i));
59 next
60 close2
61 return
62 print"[147]";chr$(14):poke53280,1:poke53281,1
63 printtab(15)"[195]64 [194][207][207][212][197][210]"
64 printtab(6)"[195]opyright 1984 [199]eorge [202]ones"
65 fort=1to2000:next
66 return
67 forc=1tolen(pn$)
68 pokesr%,(peek(fi%))
69 sr%=sr%+1:fi%=fi%+1
70 next
71 pokelm%,len(pn$):rem set length of new program name
72 return
73 rem*****************************
74 rem mx=65535 maximum address
75 rem bs%=692 start of nuboot
76 rem fi%=512 system input buffer
77 rem cs%=80 no of bytes to save
78 rem sr%=735 loc of file name
79 rem rn%=733 interpreter loop &
80 rem sys address for ml prog
81 rem lm%=702 store len(pn$)
82 rem im%=770 basic warm start vector
83 rem pn$= program name
84 rem dn$= disk name
85 rem id$= disk id
86 rem****************************
87 data40,67,40,49,57,56,52,71,74,79,78,69,83,169,1,162
88 data8,160,1,32,186,255,169,15,162,223,160,2,32,189,255,169
89 data0,162,255,160,255,32,213,255,134,45,132,46,32,239,2,32
90 data83,228,32,89,166,76,174,167,160,160,160,160,160,160,160,160
91 data160,160,160,160,160,160,160,160,162,0,169,160,157,223,2,232
92 data224,16,208,246,141,189,2,96,0,139,227,180,2
93 rem 'c64 booter' copyright 1984 george jones * for c-64